


template<class T>
	class Node
	{
		Node *prev_ = 0;
		Node *next_ = 0;
		T *item_;
	public:
		Node(T *ptr)
		 :item_(ptr)
		{}
		
		void Add(T *obj)
		{
			if(hasNext())
				next_->Add(obj);
			else
				next_ = new Node<T>(obj);
		}
		
//		Node *delete() {
//			if(hasNext())
//				next_->setPrev(prev_);
//			if(hasPrev())
//				prev_->setNext(next_)
//
//			return this;
//		}
		
		Node *getNext() const { return next_; }
		Node *getPrev() const { return prev_; }
		
		bool hasNext() const { return next_!=0; }
		bool hasPrev() const ( return prev_!=0; )
		
		void setNext(Node *ptr)
		{ next_ = ptr; }
		void setPrev(Node *ptr)
		{ next_ = ptr; }
		
	};


class EpikModelManager
{
public:
	EpikModelManager(bool *running);
};


